From 6441a629670af848d05a5572949b0cfd4eb4a82b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 5 Jan 2006 04:21:09 +0000 Subject: [PATCH] Revert questionable changes. 2006-01-04 Matthias Clasen * gtk/gtkbindings.h (struct _GtkBindingSignal): Revert questionable changes. * gtk/gtkbindings.c: Use the slice allocator and allocate signal and arguments in one block. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ gtk/gtkbindings.c | 9 +++++---- gtk/gtkbindings.h | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 330802bbda..31d612dded 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-01-04 Matthias Clasen + * gtk/gtkbindings.h (struct _GtkBindingSignal): Revert questionable + changes. + + * gtk/gtkbindings.c: Use the slice allocator and allocate signal + and arguments in one block. + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return a list of NULLs. (#325723, Steve Chaplin) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 330802bbda..31d612dded 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,11 @@ 2006-01-04 Matthias Clasen + * gtk/gtkbindings.h (struct _GtkBindingSignal): Revert questionable + changes. + + * gtk/gtkbindings.c: Use the slice allocator and allocate signal + and arguments in one block. + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return a list of NULLs. (#325723, Steve Chaplin) diff --git a/gtk/gtkbindings.c b/gtk/gtkbindings.c index 2bffa387da..de196f9a50 100644 --- a/gtk/gtkbindings.c +++ b/gtk/gtkbindings.c @@ -65,10 +65,11 @@ binding_signal_new (const gchar *signal_name, { GtkBindingSignal *signal; - signal = (GtkBindingSignal *) g_malloc0 (sizeof (GtkBindingSignal) + (n_args > 0 ? n_args - 1 : 0) * sizeof (GtkBindingArg)); + signal = (GtkBindingSignal *) g_slice_alloc0 (sizeof (GtkBindingSignal) + n_args * sizeof (GtkBindingArg)); signal->next = NULL; signal->signal_name = (gchar *)g_intern_string (signal_name); signal->n_args = n_args; + signal->args = (GtkBindingArg *)(signal + 1); return signal; } @@ -83,7 +84,7 @@ binding_signal_free (GtkBindingSignal *sig) if (G_TYPE_FUNDAMENTAL (sig->args[i].arg_type) == G_TYPE_STRING) g_free (sig->args[i].d.string_data); } - g_free (sig); + g_slice_free1 (sizeof (GtkBindingSignal) + sig->n_args * sizeof (GtkBindingArg), sig); } static guint @@ -769,7 +770,7 @@ gtk_binding_entry_add_signal (GtkBindingSet *binding_set, { GtkBindingArg *arg; - arg = g_new0 (GtkBindingArg, 1); + arg = g_slice_new0 (GtkBindingArg); slist = g_slist_prepend (slist, arg); arg->arg_type = va_arg (args, GtkType); @@ -828,7 +829,7 @@ gtk_binding_entry_add_signal (GtkBindingSet *binding_set, free_slist = slist; while (slist) { - g_free (slist->data); + g_slice_free (GtkBindingArg, slist->data); slist = slist->next; } g_slist_free (free_slist); diff --git a/gtk/gtkbindings.h b/gtk/gtkbindings.h index debd6989b8..7e28d8459d 100644 --- a/gtk/gtkbindings.h +++ b/gtk/gtkbindings.h @@ -89,7 +89,7 @@ struct _GtkBindingSignal GtkBindingSignal *next; gchar *signal_name; guint n_args; - GtkBindingArg args[1]; /* flexible array */ + GtkBindingArg *args; }; /* Application-level methods */ -- 2.30.2